* Step 1: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            active(c()) -> mark(a())
            active(c()) -> mark(b())
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
            f(mark(X1),X2,X3) -> mark(f(X1,X2,X3))
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [0]                  
            p(active) = [1] x1 + [0]         
                 p(b) = [11]                 
                 p(c) = [9]                  
                 p(f) = [1] x1 + [5] x2 + [0]
              p(mark) = [1] x1 + [4]         
                p(ok) = [1] x1 + [5]         
            p(proper) = [1] x1 + [0]         
               p(top) = [1] x1 + [0]         
          
          Following rules are strictly oriented:
                      active(c()) = [9]                   
                                  > [4]                   
                                  = mark(a())             
          
          f(ok(X1),ok(X2),ok(X3)) = [1] X1 + [5] X2 + [30]
                                  > [1] X1 + [5] X2 + [5] 
                                  = ok(f(X1,X2,X3))       
          
                     top(mark(X)) = [1] X + [4]           
                                  > [1] X + [0]           
                                  = top(proper(X))        
          
                       top(ok(X)) = [1] X + [5]           
                                  > [1] X + [0]           
                                  = top(active(X))        
          
          
          Following rules are (at-least) weakly oriented:
                active(c()) =  [9]                  
                            >= [15]                 
                            =  mark(b())            
          
          f(X1,X2,mark(X3)) =  [1] X1 + [5] X2 + [0]
                            >= [1] X1 + [5] X2 + [4]
                            =  mark(f(X1,X2,X3))    
          
          f(mark(X1),X2,X3) =  [1] X1 + [5] X2 + [4]
                            >= [1] X1 + [5] X2 + [4]
                            =  mark(f(X1,X2,X3))    
          
                proper(a()) =  [0]                  
                            >= [5]                  
                            =  ok(a())              
          
                proper(b()) =  [11]                 
                            >= [16]                 
                            =  ok(b())              
          
                proper(c()) =  [9]                  
                            >= [14]                 
                            =  ok(c())              
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 2: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            active(c()) -> mark(b())
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
            f(mark(X1),X2,X3) -> mark(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
        - Weak TRS:
            active(c()) -> mark(a())
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [10]         
            p(active) = [1] x1 + [9] 
                 p(b) = [0]          
                 p(c) = [11]         
                 p(f) = [1] x1 + [0] 
              p(mark) = [1] x1 + [10]
                p(ok) = [1] x1 + [9] 
            p(proper) = [1] x1 + [10]
               p(top) = [1] x1 + [0] 
          
          Following rules are strictly oriented:
          active(c()) = [20]     
                      > [10]     
                      = mark(b())
          
          proper(a()) = [20]     
                      > [19]     
                      = ok(a())  
          
          proper(b()) = [10]     
                      > [9]      
                      = ok(b())  
          
          proper(c()) = [21]     
                      > [20]     
                      = ok(c())  
          
          
          Following rules are (at-least) weakly oriented:
                      active(c()) =  [20]             
                                  >= [20]             
                                  =  mark(a())        
          
                f(X1,X2,mark(X3)) =  [1] X1 + [0]     
                                  >= [1] X1 + [10]    
                                  =  mark(f(X1,X2,X3))
          
                f(mark(X1),X2,X3) =  [1] X1 + [10]    
                                  >= [1] X1 + [10]    
                                  =  mark(f(X1,X2,X3))
          
          f(ok(X1),ok(X2),ok(X3)) =  [1] X1 + [9]     
                                  >= [1] X1 + [9]     
                                  =  ok(f(X1,X2,X3))  
          
                     top(mark(X)) =  [1] X + [10]     
                                  >= [1] X + [10]     
                                  =  top(proper(X))   
          
                       top(ok(X)) =  [1] X + [9]      
                                  >= [1] X + [9]      
                                  =  top(active(X))   
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 3: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
            f(mark(X1),X2,X3) -> mark(f(X1,X2,X3))
        - Weak TRS:
            active(c()) -> mark(a())
            active(c()) -> mark(b())
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [1]                   
            p(active) = [1] x1 + [0]          
                 p(b) = [4]                   
                 p(c) = [7]                   
                 p(f) = [6] x1 + [9] x2 + [13]
              p(mark) = [1] x1 + [3]          
                p(ok) = [1] x1 + [1]          
            p(proper) = [1] x1 + [1]          
               p(top) = [1] x1 + [0]          
          
          Following rules are strictly oriented:
          f(mark(X1),X2,X3) = [6] X1 + [9] X2 + [31]
                            > [6] X1 + [9] X2 + [16]
                            = mark(f(X1,X2,X3))     
          
          
          Following rules are (at-least) weakly oriented:
                      active(c()) =  [7]                   
                                  >= [4]                   
                                  =  mark(a())             
          
                      active(c()) =  [7]                   
                                  >= [7]                   
                                  =  mark(b())             
          
                f(X1,X2,mark(X3)) =  [6] X1 + [9] X2 + [13]
                                  >= [6] X1 + [9] X2 + [16]
                                  =  mark(f(X1,X2,X3))     
          
          f(ok(X1),ok(X2),ok(X3)) =  [6] X1 + [9] X2 + [28]
                                  >= [6] X1 + [9] X2 + [14]
                                  =  ok(f(X1,X2,X3))       
          
                      proper(a()) =  [2]                   
                                  >= [2]                   
                                  =  ok(a())               
          
                      proper(b()) =  [5]                   
                                  >= [5]                   
                                  =  ok(b())               
          
                      proper(c()) =  [8]                   
                                  >= [8]                   
                                  =  ok(c())               
          
                     top(mark(X)) =  [1] X + [3]           
                                  >= [1] X + [1]           
                                  =  top(proper(X))        
          
                       top(ok(X)) =  [1] X + [1]           
                                  >= [1] X + [0]           
                                  =  top(active(X))        
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 4: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
        - Weak TRS:
            active(c()) -> mark(a())
            active(c()) -> mark(b())
            f(mark(X1),X2,X3) -> mark(f(X1,X2,X3))
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(mark) = {1},
            uargs(ok) = {1},
            uargs(top) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                 p(a) = [0]                  
            p(active) = [1] x1 + [0]         
                 p(b) = [0]                  
                 p(c) = [1]                  
                 p(f) = [2] x1 + [4] x3 + [0]
              p(mark) = [1] x1 + [1]         
                p(ok) = [1] x1 + [0]         
            p(proper) = [1]                  
               p(top) = [1] x1 + [8]         
          
          Following rules are strictly oriented:
          f(X1,X2,mark(X3)) = [2] X1 + [4] X3 + [4]
                            > [2] X1 + [4] X3 + [1]
                            = mark(f(X1,X2,X3))    
          
          
          Following rules are (at-least) weakly oriented:
                      active(c()) =  [1]                  
                                  >= [1]                  
                                  =  mark(a())            
          
                      active(c()) =  [1]                  
                                  >= [1]                  
                                  =  mark(b())            
          
                f(mark(X1),X2,X3) =  [2] X1 + [4] X3 + [2]
                                  >= [2] X1 + [4] X3 + [1]
                                  =  mark(f(X1,X2,X3))    
          
          f(ok(X1),ok(X2),ok(X3)) =  [2] X1 + [4] X3 + [0]
                                  >= [2] X1 + [4] X3 + [0]
                                  =  ok(f(X1,X2,X3))      
          
                      proper(a()) =  [1]                  
                                  >= [0]                  
                                  =  ok(a())              
          
                      proper(b()) =  [1]                  
                                  >= [0]                  
                                  =  ok(b())              
          
                      proper(c()) =  [1]                  
                                  >= [1]                  
                                  =  ok(c())              
          
                     top(mark(X)) =  [1] X + [9]          
                                  >= [9]                  
                                  =  top(proper(X))       
          
                       top(ok(X)) =  [1] X + [8]          
                                  >= [1] X + [8]          
                                  =  top(active(X))       
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 5: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            active(c()) -> mark(a())
            active(c()) -> mark(b())
            f(X1,X2,mark(X3)) -> mark(f(X1,X2,X3))
            f(mark(X1),X2,X3) -> mark(f(X1,X2,X3))
            f(ok(X1),ok(X2),ok(X3)) -> ok(f(X1,X2,X3))
            proper(a()) -> ok(a())
            proper(b()) -> ok(b())
            proper(c()) -> ok(c())
            top(mark(X)) -> top(proper(X))
            top(ok(X)) -> top(active(X))
        - Signature:
            {active/1,f/3,proper/1,top/1} / {a/0,b/0,c/0,mark/1,ok/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {active,f,proper,top} and constructors {a,b,c,mark,ok}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(n^1))